package javaclub;

/**
 * 037. 可截短素数
 * 数字 3797 有一个有趣的性质：它自己是一个素数，同时我们可以从左至右逐步截断这个数
 * 字，得到 3797，797，97 和 7，它们也都是素数。同样，我们也可以从右至左逐步截断这个
 * 数字，得到 3797，379，37 和 3 也都是素数。求仅有的十一个从左至右和从右至左都可以截
 * 短的素数之和(注：2，3，5 和 7 不被认为是可截短素数)。
 * 答案：748317
 */
public class work037 {
    public static boolean isSuShu(int n){
        if(n<2)return false;
        int m=(int) Math.sqrt(n);
        for(int i=2;i<=m;i++){
            if(n%i==0)return false;
        }
        return true;
    }

    public static boolean getJieShuIsTrue2(int n){
        int m=n;
        int []num=new int[8];
        int i=1;
        while (n>0){
            num[i++]=n%10;
            n/=10;
        }
        for(int j=i;j>1;j--){
             m-=num[j]*Math.pow(10,j-1);
            //System.out.println(m);
            if(!isSuShu(m)){
                return false;
            }
        }
        return true;
    }

    public static boolean getJieShuIsTrue1(int n){
        while (n>0&&isSuShu(n)){
            n/=10;
        }
        if(n>0)return false;
        return true;
    }
    public static void main(String[] args) {
        int tap=0,sum=0;
        for(int i=11;i<750000&&tap<=11;i+=2){
            if (getJieShuIsTrue1(i)&&getJieShuIsTrue2(i)){
                System.out.println(i);
                tap++;
                sum+=i;
            }
        }
        System.out.println(sum);
//        System.out.println(getJieShuIsTrue2(3797));
    }

}
